home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / VISUALBA / PBTCL132.ZIP / DEMO.BAS < prev    next >
BASIC Source File  |  1994-02-04  |  12KB  |  395 lines

  1. $CPU 8086
  2. $LIB ALL OFF
  3. $ERROR ALL OFF
  4. $OPTIMIZE SIZE
  5. $COMPILE EXE
  6.  
  7. $INCLUDE "PBTCLASS.DEC"
  8.  
  9. DIM Menu1$(1:9)
  10.   Menu1$(1)=" Border Types   "
  11.   Menu1$(2)=" Moving Windows "
  12.   Menu1$(3)=" Recoloring     "
  13.   Menu1$(4)=" resiZing       "
  14.   Menu1$(5)=" scroLling      "
  15.   Menu1$(6)=" Shadows        "
  16.   Menu1$(7)=" Titles         "
  17.   Menu1$(8)=" Other Demos    "
  18.   Menu1$(9)=" Exit Demo      "
  19.  
  20. DIM Menu2$(1:4)
  21.   Menu2$(1)=" Key status     "
  22.   Menu2$(2)=" String tools   "
  23.   Menu2$(3)=" string Testing "
  24.   Menu2$(4)=" Quit to main   "
  25.  
  26. True$="On "
  27. False$="Off"
  28. Yes$="Yes"
  29. No$="No "
  30.  
  31. CALL InitPBScreen
  32.  
  33. CALL Fill(1,1,25,80,178,23)
  34.  
  35. CALL OpenWin(5,12,13,58,11,20,31,3,1,0)  'Window #1
  36. CALL WPrintC(1,"PBTools:Classic v1.32",0)
  37. CALL WPrintC(2,"(c) Copyright 1990-1993 by Dave Navarro, Jr.",0)
  38. CALL WPrintC(3,"Demo by James R. Davis",0)
  39.  
  40. IF CurDisplay%=0 THEN Mon$="Monochrome"
  41. IF CurDisplay%=1 THEN Mon$="CGA"
  42. IF CurDisplay%=2 THEN Mon$="EGA"
  43. IF CurDisplay%=3 THEN Mon$="MCGA"
  44. IF CurDisplay%=4 THEN Mon$="VGA"
  45.  
  46. Text$="A "+Mon$+" monitor is running in display mode"+STR$(VidMode%)
  47. CALL WPrintC(5,Text$,0)
  48.  
  49. Text$="Video RAM segment located at "+HEX$(VidSeg%)+"H "
  50. CALL WPrintC(6,Text$,0)
  51.  
  52. Text$="System has"+STR$(FRE(-1)\1024)+"K Free RAM"
  53. CALL WPrintC(7,Text$,0)
  54.  
  55. Text$="The value of the top of the current cursor is"+STR$(CurTop%)
  56. CALL WPrintC(8,Text$,0)
  57.  
  58. Text$="The value of the bottom of the current cursor is"+STR$(CurBot%)
  59. CALL WPrintC(9,Text$,0)
  60.  
  61. CALL WPrintC(11,"Press Any Key to Continue",0)
  62. I$=GetKey$
  63. CALL CloseWin
  64.  
  65. FirstMenu:
  66. CALL OpenWin(2,20,5,46,2,30,31,3,0,0)       'Window #1
  67. CALL WPrintC(1,"PBTools:Classic v1.32",0)
  68. CALL WPrintC(2,"(c) Copyright 1990-1993 by Dave Navarro, Jr.",0)
  69. CALL WPrintC(3,"Demo by James R. Davis",0)
  70. CALL OpenWin(8,4,11,20,2,30,31,3,1,1)       'Window #2
  71. IF CurDisplay%=0 THEN Menu1$(3)=" =-=-=-=-=-=-=-= "
  72. IF CurDisplay%=0 THEN Hilite%=Attr%(0,7) ELSE Hilite%=Attr%(1,7)
  73. XWin%=1:YWin%=2
  74.  
  75. MainMenu:
  76.   Choice%=Menu%(Menu1$(),1,9,Choice%,Hilite%,Attr%(14,1))
  77.   IF Choice%<1 THEN Choice%=9:GOTO MainMenu
  78.   IF Choice%=1 THEN BorTypes
  79.   IF Choice%=2 THEN MovingWin
  80.   IF Choice%=3 THEN CycleColors
  81.   IF Choice%=4 THEN Resize
  82.   IF Choice%=5 THEN Scrolling
  83.   IF Choice%=6 THEN Shadows
  84.   IF Choice%=7 THEN Titles
  85.   IF Choice%=8 THEN Other
  86.   IF Choice%=9 THEN SayBye
  87.   GOTO MainMenu
  88.  
  89. Titles:
  90.   CALL OpenWin(7,14,15,55,2,30,31,3,1,0)    'Window #3
  91.   CALL WPrintC(6,"You can place titles in 6 different",0)
  92.   CALL WPrintC(8,"positions on the window border.    ",0)
  93.   DELAY 1
  94.   CALL Title(1,0,"[Position 1]")
  95.   DELAY 1
  96.   CALL Title(2,0,"[Position 2]")
  97.   DELAY 1
  98.   CALL Title(3,0,"[Position 3]")
  99.   DELAY 1
  100.   CALL Title(4,0,"[Position 4]")
  101.   DELAY 1
  102.   CALL Title(5,0,"[Position 5]")
  103.   DELAY 1
  104.   CALL Title(6,0,"[Position 6]")
  105.   DELAY 4
  106.   CALL CloseWin
  107.   GOTO MainMenu
  108.  
  109. Shadows:
  110.   CALL OpenWin(6,13,10,30,2,30,31,0,1,0)    'Window #3
  111.   CALL WPrintC(4,"No Shadow!",0)
  112.   DELAY 2
  113.   CALL OpenWin(8,19,10,30,2,30,31,1,1,0)    'Window #4
  114.   CALL WPrintC(3,"Solid Shadow",0)
  115.   CALL WPrintC(5,"Drop Left",0)
  116.   DELAY 3
  117.   CALL OpenWin(10,25,10,30,2,30,31,2,1,0)   'Window #5
  118.   CALL WPrintC(3,"Solid Shadow",0)
  119.   CALL WPrintC(5,"Drop Right",0)
  120.   DELAY 3
  121.   CALL OpenWin(12,31,10,30,2,30,31,3,1,0)   'Window #6
  122.   CALL WPrintC(3,"Transparent Shadow",0)
  123.   CALL WPrintC(5,"Drop Left",0)
  124.   DELAY 3
  125.   CALL OpenWin(14,37,10,30,2,30,31,4,1,0)   'Window #7
  126.   CALL WPrintC(3,"Transparent Shadow",0)
  127.   CALL WPrintC(5,"Drop Right",0)
  128.   DELAY 3
  129.   CALL CloseWin
  130.   DELAY 1
  131.   CALL CloseWin
  132.   DELAY 1
  133.   CALL CloseWin
  134.   DELAY 1
  135.   CALL CloseWin
  136.   DELAY 1
  137.   CALL CloseWin
  138.   GOTO MainMenu
  139.  
  140. Scrolling:
  141.   CALL OpenWin(20,18,3,50,2,30,31,3,0,0)    'Window #3
  142.   CALL WPrintC(1,"Scroll the inside of a window any direction!",0)
  143.   CALL OpenWin(8,28,10,50,2,30,31,3,0,0)    'Window #4
  144.   CALL WPrintC(1,"Bouncing!!",0)
  145.   Yscr%=1:XScr%=20:Xdir%=-1:Ydir%=1:D=1
  146.   DO
  147.      IF Xdir%<0 THEN DECR XScr% ELSE INCR XScr%
  148.      IF Ydir%<0 THEN DECR YScr% ELSE INCR YScr%
  149.      IF XScr%=1 THEN Xdir%=1 ELSE IF XScr%=36 THEN Xdir%=-1
  150.      IF YScr%<3 THEN YDir%=1 ELSE IF YScr%>8 THEN YDir%=-1
  151.      IF Xdir%<0 THEN CALL ScrollWin(4) ELSE CALL ScrollWin(3)
  152.      IF Ydir%<0 THEN CALL ScrollWin(2) ELSE CALL ScrollWin(1)
  153.      DELAY .22
  154.      I$=INKEY$
  155.   LOOP UNTIL I$=CHR$(27)
  156.   CALL CloseWin
  157.   CALL CloseWin
  158.   GOTO MainMenu
  159.  
  160. Resize:
  161.   CALL OpenWin(20,18,4,50,2,30,31,3,0,0)    'Window #3
  162.   CALL WPrintC(1,"Resizing windows is easy!!",0)
  163.   CALL WPrintC(2,"Press ESC to end resizing demo.",0)
  164.   CALL OpenWin(7,35,9,25,2,30,31,0,0,0)     'Window #4
  165.   CALL WPrint(1,2,"Resizing!!!",0)
  166.   Xlen%=25:Ylen%=9:Xdir%=-1:Ydir%=-1
  167.   KeyLoop:
  168.      IF Xdir%<0 THEN DECR Xlen% ELSE INCR Xlen%
  169.      IF YDir%<0 THEN DECR Ylen% ELSE INCR Ylen%
  170.      IF XLen%<15 THEN Xdir%=1 ELSE IF Xlen%>34 THEN Xdir%=-1
  171.      IF Ylen%<3 THEN Ydir%=1 ELSE IF Ylen%>15 THEN Ydir%=-1
  172.      IF Xdir%<0 THEN CALL ChangeWin(2) ELSE CALL ChangeWin(1)
  173.      IF Ydir%<0 THEN CALL ChangeWin(4) ELSE CALL ChangeWin(3)
  174.      DELAY .25
  175.      IF INKEY$<>CHR$(27) THEN KeyLoop
  176.   CALL CloseWin
  177.   CALL CloseWin
  178.   GOTO MainMenu
  179.  
  180. MovingWin:
  181.   CALL OpenWin(21,17,4,50,2,30,31,0,0,0)    'Window #3
  182.   CALL WPrintC(1,"Use Arrow Keys to move Menu",0)
  183.   CALL WPrintC(2,"Press ESC when your finished. ",0)
  184.   CurWin%=2      'Be Careful when you change the current windo!
  185.   CALL NoShadow
  186.   EndlessLoop:
  187.     I$=GetKey$
  188.     IF I$=CHR$(27) THEN NoMove
  189.     IF I$=CHR$(0,77) AND XWin%<57 THEN INCR XWin%:CALL MoveWin(1)
  190.     IF I$=CHR$(0,75) AND XWin%>1 THEN DECR XWin%:CALL MoveWin(2)
  191.     IF I$=CHR$(0,80) AND YWin%<3 THEN INCR YWin%:CALL MoveWin(3)
  192.     IF I$=CHR$(0,72) AND YWin%>1 THEN DECR YWin%:CALL MoveWin(4)
  193.     GOTO EndlessLoop
  194.   NoMove:
  195.     CurWin%=3
  196.     CALL CloseWin
  197.     CALL AddShadow(3)
  198.     GOTO MainMenu
  199.  
  200. CycleColors:
  201.   IF CurDisplay%=0 THEN MainMenu
  202.   CurWin%=1
  203.     FOR I%=128 TO 1 STEP -1
  204.       CALL WinColor(I%)
  205.       FOR T%=1 TO 32000:NEXT T%
  206.       IF INKEY$<>"" THEN EXIT FOR
  207.     NEXT I%
  208.   CALL WinColor(31)
  209.   CurWin%=2
  210.   GOTO MainMenu
  211.  
  212. BorTypes:
  213.   CALL OpenWin(7,4,17,76,2,30,31,3,0,0)     'Window #3
  214.   IF CurDisplay%=0 THEN Normal%=Attr%(0,7) ELSE Normal%=Attr%(1,7)
  215.   FOR I%=3 TO 0 STEP -1                     'Window #4-7
  216.     CALL OpenWin(8,14+(I%*15),5,13,I%,Normal%,Normal%,3,0,0)
  217.     CALL Title(1,0,"[Frame"+STR$(I%)+"]")
  218.   NEXT I%
  219.   FOR I%=4 TO 0 STEP -1                     'Window #8-12
  220.     CALL OpenWin(11,8+(I%*14),5,13,I%+4,Attr%(14,4),Attr%(14,4),3,0,0)
  221.     CALL Title(1,0,"[Frame"+STR$(I%+4)+"]")
  222.   NEXT I%
  223.   FOR I%=2 TO 0 STEP -1                     'Window #13-16
  224.     CALL OpenWin(14,19+(I%*17),5,14,I%+9,Attr%(15,5),Attr%(15,5),3,0,0)
  225.     CALL Title(2,0,"[Frame"+STR$(I%+9)+"]")
  226.   NEXT I%
  227.   FOR I%=1 TO 0 STEP -1                     'Window #17-18
  228.     CALL OpenWin(17,28+(I%*17),5,14,I%+12,Attr%(8,7),Attr%(8,7),3,0,0)
  229.     CALL Title(2,0,"[Frame"+STR$(I%+12)+"]")
  230.   NEXT I%
  231.   I$=GetKey$
  232.   FOR I%=0 TO 14
  233.     CALL CloseWin
  234.   NEXT I%
  235.   GOTO MainMenu
  236.  
  237. SayBye:
  238.   CALL OpenWin(1,1,25,80,0,7,7,0,1,0)       'Window #3
  239.   LOCATE 1,1
  240.   PRINT "Thanks for giving PBTools:Classic v1.32 a try!"
  241.   END
  242.  
  243. Other:
  244. X%=Xpos%(2)+2:Y%=Ypos%(2)+9
  245. CALL OpenWin(Y%,X%,6,20,2,30,31,3,1,1)        'Window #3
  246. IF CurDisplay%=0 THEN Hilite%=Attr%(0,7) ELSE Hilite%=Attr%(1,7)
  247. XWin%=1:YWin%=2
  248.  
  249. MainMenu2:
  250.   Choic%=Menu%(Menu2$(),1,4,Choic%,Hilite%,Attr%(14,1))
  251.   IF Choic%<1 THEN Choic%=4:GOTO MainMenu2
  252.   IF Choic%=1 THEN KeyStats
  253.   IF Choic%=2 THEN StringTools
  254.   IF Choic%=3 THEN StringTests
  255.   IF Choic%=4 THEN CALL CloseWin:GOTO MainMenu
  256.   GOTO MainMenu2
  257.  
  258. KeyStats:
  259.   CALL OpenWin(20,18,4,50,2,30,31,3,0,0)    'Window #4
  260.   CALL WPrintC(1,"Test or toggle the state of any key!",0)
  261.   CALL WPrintC(2,"Press ESC to end key demo.",0)
  262.   CALL OpenWin(7,28,12,28,2,30,31,3,0,0)    'Window #5
  263.   CALL WPrint(1,1,"  Toggle Keys      State  ",Attr%(15,4))
  264.   CALL WPrint(2,4,"Caps Lock",Attr%(14,1))
  265.   CALL WPrint(3,4,"Insert Key",Attr%(14,1))
  266.   CALL WPrint(4,4,"Num Lock",Attr%(14,1))
  267.   CALL WPrint(5,4,"Scroll Lock",Attr%(14,1))
  268.   CALL WPrint(6,1,"  Alternate Keys          ",Attr%(15,4))
  269.   CALL WPrint(7,4,"Alt Key",Attr%(14,1))
  270.   CAL